218B - Airport - CodeForces Solution


implementation *1100

Please click on ads to support us..

Python Code:

import heapq
n,m= map(int,input().split())
a = list(map(int,input().split()))
b = [-i for i in a]
heapq.heapify(a)
heapq.heapify(b)

seats = 0
maxVal = 0
minVal = 0

while seats<n:
    minSeat = heapq.heappop(a)
    minVal+=minSeat
    minSeat-=1
    if minSeat>0:
        heapq.heappush(a,minSeat)


    maxSeat = heapq.heappop(b)
    maxVal+=abs(maxSeat)
    maxSeat+=1
    if maxSeat<0:
        heapq.heappush(b,maxSeat)
    
    seats+=1

print(maxVal,minVal)

C++ Code:

#include <iostream>
#include<algorithm>
#include<queue>
using namespace std;

int
main ()
{
  int passengers, seats;
  cin >> passengers >> seats;
      
      priority_queue<int,vector<int>,less<int>> eamptysets;
       priority_queue<int,vector<int>,greater<int>> eamptysets_min;

      while(seats--)
            {
                  int x;
                  cin>>x;
                  eamptysets.push(x);
                  eamptysets_min.push(x);
            }
      int max=0,min=0;
      int temp;
      int passengers2=passengers;
     while(passengers--)
      {
            max+=eamptysets.top();
            temp=eamptysets.top();
            eamptysets.pop();
            if(temp-1!=0)
            eamptysets.push(temp-1);
            
            
      }
      int temp_min;
      while(passengers2--)
      {
      min+=eamptysets_min.top();
      temp_min=eamptysets_min.top();
      eamptysets_min.pop();
      if(temp_min-1!=0)
      eamptysets_min.push(temp_min-1);      
            
      }
      
      cout<<max<<" "<<min;
      
  return 0;
}


Comments

Submit
0 Comments
More Questions

1487A - Arena
1520D - Same Differences
376A - Lever
1305A - Kuroni and the Gifts
1609A - Divide and Multiply
149B - Martian Clock
205A - Little Elephant and Rozdil
1609B - William the Vigilant
978B - File Name
1426B - Symmetric Matrix
732B - Cormen --- The Best Friend Of a Man
1369A - FashionabLee
1474B - Different Divisors
1632B - Roof Construction
388A - Fox and Box Accumulation
451A - Game With Sticks
768A - Oath of the Night's Watch
156C - Cipher
545D - Queue
459B - Pashmak and Flowers
1538A - Stone Game
1454C - Sequence Transformation
165B - Burning Midnight Oil
17A - Noldbach problem
1350A - Orac and Factors
1373A - Donut Shops
26A - Almost Prime
1656E - Equal Tree Sums
1656B - Subtract Operation
1656A - Good Pairs